package cn.itcast.webmagicDemo.service;


import cn.itcast.webmagicDemo.dao.JobInfoDao;
import cn.itcast.webmagicDemo.pojo.JobInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class JobInfoServiceImpl implements JobInfoService{

    @Autowired
    private JobInfoDao jobInfoDao;


    @Override
    @Transactional // 开启事务
    public void save(JobInfo jobInfo) {
        // 保存之前判断是否已经保存过了
        // 此时我们需要判断url地址和发布的时间是否一致，如果两者一致，我们才不需要更新
        // 否则需要保存数据(此时的保存就是更新数据)

        // 根据url和时间查询数据
        JobInfo searchTemp = new JobInfo();
        String url = jobInfo.getUrl();
        String time = jobInfo.getTime();
        searchTemp.setUrl(url);
        searchTemp.setTime(time);
        List<JobInfo> all = findAll(searchTemp);
        if (all.size() == 0) {
            // 当前数据库中没有该数据
            this.jobInfoDao.saveAndFlush(jobInfo); // 保存并更新到数据库
        }
    }

    @Override
    public List<JobInfo> findAll(JobInfo jobInfo) {
        Example<JobInfo> example = Example.of(jobInfo);
        return jobInfoDao.findAll(example);
    }
}
